package TableModels;

import Entities.HdEquipamento;
import Util.Constantes;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Ferrari
 */
public class EquipamentoRelatorioTableModel {
    
    private static DefaultTableModel model;

    private EquipamentoRelatorioTableModel() {
    }
    
 public static void init(){
        model = new DefaultTableModel();
        model.setColumnCount(5);
        String[] colunas = new String[]{
                Constantes.COLUNA_CODIGO,
                Constantes.COLUNA_DESCRICAO,
                Constantes.COLUNA_DE_EQUIPAMENTO2,
                Constantes.COLUNA_DE_EQUIPAMENTO3,
                Constantes.COLUNA_TP_USER
        };
        model.setColumnIdentifiers(colunas);
    }
 
    private static void addEquipamento(HdEquipamento equipamento){

        List<String> s = new ArrayList<>();
        try{
            s.add(String.valueOf(equipamento.getCoEquipamento()));
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        try{
            s.add(equipamento.getDeEquipamento());
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        try{
            s.add(equipamento.getDeEquipamento2());
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        try{
            s.add(equipamento.getDeEquipamento3());
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        try{
            s.add(equipamento.getCoTipoEquipamento().getDeTipoEquipamento()); 
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        
        String []  linha = new String[]{
            s.get(0),
            s.get(1),
            s.get(2),
            s.get(3),
            s.get(4)
        };
        
        getModel().addRow(linha);
    }
    
    public static DefaultTableModel addAllEquipamento(List<HdEquipamento> listaEquipamentos){
        limpaTabela();
        try{
            for (HdEquipamento hdEquipamento : listaEquipamentos) {
                addEquipamento(hdEquipamento);
            }
            return getModel();
        }catch(Exception e){
            return getModel();
        }
    }
    
    public static DefaultTableModel getModel() {
        if (model == null) {
            init();
        }
        return model;
    }
    
    public static void limpaTabela(){
        getModel().setRowCount(0);
    }
}
